De-Quantising Non-Halting Programs
نویسندگان
چکیده
Since many real-world problems arising in the fields of compiler optimisation, automatised software engineering, formal proof systems, and so forth are equivalent to the Halting Problem—the most notorious undecidable problem—there is a growing interest, not only academically, in understanding the problem better and in providing alternative solutions. Halting computations can be recognised by simply running them; the main difficulty is to detect non-halting programs. For each program length on a given machine, there is an uncomputable “critical time” after which no more programs of that length will halt. A quantum algorithm [7, 1] has been shown to solve the halting problem to any degree of certainty less than one and various experimental studies have proposed heuristics that apply to a majority of programs [4, 15]. Is it possible to have a classical effective way to describe this phenomenon? The aim of this paper is to provide a non-quantum analysis; our approach is to have the probability space extend over both space and time and to consider the probability that a random N -bit program has halted by a random time. We postulate an a priori computable probability distribution on all possible runtimes and we prove that given an integer k > 0, we can effectively compute a time bound T such that the probability that an N -bit program will eventually halt given that it has not halted by T is smaller than 2−k. We also show that the set of halting programs (which is computably enumerable, but not computable) can be written as a disjoint union of a computable set and a set of effectively vanishing probability. Finally, we show that “long” runtimes are effectively rare. More formally, the set of times at which an N -bit program can stop after the time 2N+ constant has effectively zero density.
منابع مشابه
Sizes of Halting Testers for Programs of Bounded Size
It is known that for every programming language satisfying some reasonable conditions, there is a constant c such that for every n, a halting tester of size no more than n + c exists that correctly halt-tests all programs of size up to n with the empty input. In this submission Busy Beaver techniques are used to show that there is a constant d such that each halting tester of the above kind is ...
متن کاملThe Halting Problem for Deductive Synthesis of Logic Programs
Deductive synthesis methods derive programs in an incremental manner, and therefore pose a halting problem { when can synthesis stop with a correct program? We give a characterisation of this problem and state a halting principle as a solution. Another characteristic of deductive synthesis is that it may derive several correct programs, giving rise to another question { which correct programs a...
متن کاملAutosolvability of halting problem instances for instruction sequences
We position Turing’s result regarding the undecidability of the halting problem as a result about programs rather than machines. The mere requirement that a program of a certain kind must solve the halting problem for all programs of that kind leads to a contradiction in the case of a recent unsolvability result regarding the halting problem for programs. In this paper, we investigate this auto...
متن کاملJ an 2 00 7 Most Programs Stop Quickly or Never Halt
Since many real-world problems arising in the fields of compiler optimisation, automated software engineering, formal proof systems, and so forth are equivalent to the Halting Problem—the most notorious undecidable problem—there is a growing interest, not only academically, in understanding the problem better and in providing alternative solutions. Halting computations can be recognised by simp...
متن کاملInitialization Halting Concepts and Their Basic Properties of SCMFSA
Up to now, many properties of macro instructions of SCMFSA are described by the parahalting concepts. However, many practical programs are not always halting while they are halting for initialization states. For this reason, we propose initialization halting concepts. That a program is initialization halting (called ”InitHalting” for short) means it is halting for initialization states.In order...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2006